<?php

class Colecao {
    private $id;
    private $nome;

    const NOME_MODULO = "Colecao";

    public function getId() {
        return $this->id;
    }

    public function setId($id) {
        $this->id = $id;
    }

    public function getNome() {
        return $this->nome;
    }

    public function setNome($nome) {
        $this->nome = $nome;
    }       
    
    public static function listar(){
        $colecoes = array();
        $conn = Connection::getConnection();
        
        $rs = $conn->query("SELECT * FROM colecao");
        
        while($linha = $rs->fetch_assoc()){
            $colecoes[] = self::arrayParaColecao($linha);
        }
        
        return $colecoes;
    }
    
    
    public function inserir(){
            $conn = Connection::getConnection();
		
            $rs = $conn->prepare("INSERT INTO colecao SET nome = ?, descricao = ?");
	    $rs->bind_param("ss", 
                            $this->nome, 
                            $this->descricao);
            
            return $rs->execute();       
    }
    
    
    /**
     * Retorna um Colecao
     * @param int id
     * @return Colecao
     */
    public static function consultar($id){
        $colecao = null;
        $conn = Connection::getConnection();
        
        $rs = $conn->query("SELECT * FROM colecao WHERE idColecao = $id");
        
        
        if($rs == false){
          $colecao = null;
        }else{
            $linha = $rs->fetch_assoc();
            //se foi encontrado o registro
            if($linha){
            $colecao = self::arrayParaColecao($linha);
            }
        }
        return $colecao;
    }
    /**
     * Retorna um Colecao 
     * @param String nome
     * @return Colecao
     */
    public static function consultarPorNome($nome){
        $colecao = null;
        
        $conn = Connection::getConnection();
        $rs = $conn->query("SELECT * FROM colecao WHERE nome = '$nome'");
        $linha = $rs->fetch_assoc();
        //se foi encontrado o registro
        if($linha){
           $colecao = self::arrayParaColecao($linha);
        }
        return $colecao;
    }
    
    
    
    /**
     * Tranforma a linha de uma consulta na tabela colecao em um objeto Colecao
     * @param type $linha linha de uma consulta da tabela colecao
     */
    public static function arrayParaColecao($linha){
        $colecao = new Colecao();
        $colecao->id = isset($linha["idColecao"]) ? $linha["idColecao"] : null;
        $colecao->nome = isset($linha["nome"]) ? $linha["nome"]: null;
        return $colecao;
    }
    
}
?>
